package com.kimari.demo;

/**
 * 算法练习四
 * 有1、2、3、4个数字，能组成多少个互不相同且无重复数字的三位数？
 * 都是多少？
 * 可填在百位、十位、个位的数字都是1、2、3、4。
 * 组成所有的排列后再去掉不满足条件的排列。
 * @author Reimu
 */
public class Digit {

    public static int[] nums;

    static {
        nums = new int[]{1, 2, 3, 4};
    }

    /**
     * 高中数学
     * 排列和组合的思想
     */
    public static void digit() {
        //计数器
        int count = 0;
        //第一个 for 循环变量 i 用作百位数
        for (int i = 1; i <= nums.length; i++) {
            //第二个 for 循环变量 j 用作十位数
            for (int j = 1; j <= nums.length; j++) {
                //第三个 for 循环变量 k 用作个位数
                for (int k = 1; k < nums.length; k++) {
                    //满足题意就输出
                    if (i != j && j != k && k != i) {
                        System.out.println(i * 100 + j * 10 + k);
                        count++;
                    }
                }
            }
        }
        System.out.println("一共有" + count + "个");
    }
}
